import type { DialogProps as ElDialogProps } from "element-plus";

export interface CLDialogProps
  extends Omit<Partial<ElDialogProps>, "modelValue"> {
  /** 是否要 Dialog 按钮操作区 */
  isFooter?: boolean;
  /** 是否要取消按钮 */
  isCancel?: boolean;
  /** 是否要确认按钮 */
  isConfirm?: boolean;
  isMaxHeight?: boolean;
  /** Dialog 打开的回调 */
  onOpen?: () => void;
  /** Dialog 打开动画结束时的回调 */
  onOpened?: () => void;
  /** Dialog 关闭的回调 */
  onClose?: () => void;
  /** Dialog 关闭动画结束时的回调 */
  onClosed?: () => void;
  /** 输入焦点聚焦在 Dialog 内容时的回调 */
  onOpenAutoFocus?: () => void;
  /** 输入焦点从 Dialog 内容失焦时的回调 */
  onCloseAutoFocus?: () => void;
}

export interface CLDialogAction {
  /** 设置显示隐藏 */
  setVisible: (visible: boolean) => void;
  /** 设置配置项 */
  setProps: (props: CLDialogProps) => void;
  /** 设置作用域插槽的值 */
  setSlotData: (slotData: any) => void;
}
